In the last few decades, computers have become one of the most significant means for people to communicate and process information. As computing technologies continue to rapidly advance, the functionalities offered by computers have also been progressing at an ever-increasing pace. However, the fundamental way in which users interact with computers had not experienced a proportional advancement. In particular, interactions between users and conventional computers are still based on a “pull” model.
The “pull” computing interaction model originated from the early days of computing for dealing with the limitations of computing power, storage, memory and bandwidth. When computing time was expensive and people time was cheap, it was advantageous to optimize the usage of computing resources by batch-staging jobs to efficiently fill a computing pipeline.
Recent improvements in computing technologies have dramatically reduced the cost of computing resources. For example, the processing power of today's typical home computers can often rival that of the professional mainframe computers built just a few decades ago. In spite of the advances in computing power, personal computers still rely on the “pull” model for interacting with users. As a result, a typically computer may only use a very small amount of the available computing resources while the computer is waiting for the user to interact (e.g. read, type, command, or control).
An effective solution for better utilizing computing resources of today's powerful computers continues to elude those skilled in the art.
Like reference numerals are used to designate like parts in the accompanying drawings.